package net.xdclass.online_xdclass.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import net.xdclass.online_xdclass.model.entity.Video;
import net.xdclass.online_xdclass.model.entity.VideoBanner;
import net.xdclass.online_xdclass.service.VideoService;
import net.xdclass.online_xdclass.utils.JsonData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 视频控制器
 * * @RestController 可以返回json数据 @Controller 是不会返回json数据的，
 * * @RequestMapping 定义api @RequestMapping 作⽤：路由映射，⽤于类上做1级路径；⽤于某个⽅法上做⼦路径
 * /api/v1/pub/AA/BB 这个是不需要登录
 * /api/v1/pri/AA/BB 这个是需要登录
 */
@RestController
@RequestMapping("/api/v1/pub/video")
public class VideoController {

    @Autowired
    private VideoService videoService;

    /**
     * 轮播图列表
     * @return
     * @throws JsonProcessingException
     */
    @GetMapping("list_banner")
    public JsonData indexBanner() throws JsonProcessingException{
        List<VideoBanner> bannerList =  videoService.listBanner();
        return JsonData.buildSuccess(bannerList);
    }

    /**
     * 视频列表
     * @return
     * @throws JsonProcessingException
     */
    @GetMapping("list")
    public JsonData list() throws JsonProcessingException {
        List<Video> videoList = videoService.listVideo();
        return JsonData.buildSuccess(videoList);
    }

    /**
     * 查询视频详情，包含章，集信息
     * @param videoId
     * @return
     */
    @GetMapping("find_detail_by_id")
    public JsonData findDetailById(@RequestParam(value = "video_id", required = true) int videoId){
        Video video = videoService.findDetailById(videoId);
        return JsonData.buildSuccess(video);
    }
}
